<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function bruteForce(haystack, needle) {
      /**
       * 该方案使用暴力破解的方法，逐个遍历原串字符，当原串字符与匹配字符串首个字符
       * 相等时，则比较匹配字符串后续字符与原串后续字符是否一一相等。如果相等，证明
       * 已匹配原串，则返回原串字符位置；反之，则未匹配原串，继续遍历后续原串字符。
       */
      // 如果原串或待匹配字符串长度为0，则无法匹配，直接返回-1
      if (haystack.length == 0 || needle.length == 0) return -1;
      // 逐个字符遍历原串，当原串剩余字符数量小于匹配字符串长度时，
      // 证明匹配字符串已无法匹配原串，直接跳出循环
      for (let i = 0; i <= haystack.length - needle.length; i++) {
        // 原串每遍历一个字符，匹配字符串则需从首个字符重新遍历
        let j = 0;
        // 当原串字符与匹配字符串字符相同时，则继续比较后续字符，
        // 若匹配字符串最后一个字符仍相同，则证明匹配达成，返回
        // 原串当前位置即可；
        while (haystack[i + j] == needle[j]) {
          j++;
          if (j == needle.length) return i;
        }
      }
      return -1
    }
    console.log(bruteForce(haystack = "leetcode", needle = "leeto"))
  </script>
</body>
<!-- 

 -->

</html>